package com.senlingspace.payment.douyin.bean.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * 抖音验券响应
 *
 * @author lebronjames
 * @date 2024/07/23
 */
@Data
public class DouyinVerifyTicketResponse implements Serializable {

    @JsonProperty("data")
    private ResponseData data;

    @JsonProperty("extra")
    private DouyinCommonResponse.Extra extra;

    @EqualsAndHashCode(callSuper = true)
    @Data
    public static class ResponseData extends DouyinCommonResponse.CommonData {

        /**
         * 验券结果
         */
        @JsonProperty("verify_results")
        private List<VerifyData> verifyResults;

    }

    @Data
    public static class VerifyData implements Serializable {

        /**
         * 验券结果码，0表示成功，非0表示失败
         */
        @JsonProperty("result")
        private Integer result;

        /**
         * 验券结果说明
         */
        @JsonProperty("msg")
        private String msg;

        /**
         * 代表验券传入的code或encrypted_code
         */
        @JsonProperty("code")
        private String code;

        /**
         * 订单id
         */
        @JsonProperty("order_id")
        private String orderId;

        /**
         * 代表券码一次核销的标识（撤销时需要）
         */
        @JsonProperty("verify_id")
        private String verifyId;

        /**
         * 代表一张券码的标识（撤销时需要）
         */
        @JsonProperty("certificate_id")
        private String certificateId;

        /**
         * 代表抖音团购券的12位或15位原始券码（抖音加密券码核销时）
         */
        @JsonProperty("origin_code")
        private String originCode;

        /**
         * 代表企业号商家总店id（查询验券历史时需要）
         */
        @JsonProperty("account_id")
        private String accountId;

    }

}
